/*
 * PreferenceStoreImpl.java
 *
 * Created on 2008/07/20 +0900
 *
 * $Revision: 58 $
 * $Date: 2008-12-06 08:59:45 +0000 (Sat, 06 Dec 2008) $
 */

package org.gikolet.framework.preference;

import java.util.Hashtable;

import org.gikolet.framework.util.ListenerList;

/**
 * @author Tetsutaro (latest modification by $Author: tetsutaro.ss $)
 * @version $Revision: 58 $ $Date: 2008-12-06 08:59:45 +0000 (Sat, 06 Dec 2008) $
 */
public class PreferenceStoreImpl implements PreferenceStore {
    private ListenerList listeners;
    private Hashtable preferenceTable;
    private Hashtable defaultPreferenceTable;

    public PreferenceStoreImpl() {
	this.preferenceTable = new Hashtable();
	this.defaultPreferenceTable = new Hashtable();
	this.listeners = new ListenerList();
    }

    public void addPropertyChangeListener(PropertyChangeListener listener) {
	this.listeners.add(listener);
    }

    public void removePropertyChangeListener(PropertyChangeListener listener) {
	this.listeners.remove(listener);
    }

    public boolean contains(String name) {
	// TODO 自動生成されたメソッド・スタブ
	return false;
    }

    public void firePropertyChangeEvent(String name, Object oldValue,
	    Object newValue) {
	// TODO 自動生成されたメソッド・スタブ

    }

    public boolean getBoolean(String name) {
	Object value = this.preferenceTable.get(name);
	if (value != null && value instanceof Boolean) {
	    return ((Boolean) value).booleanValue();
	} else {
	    return getDefaultBoolean(name);
	}
    }

    public boolean getDefaultBoolean(String name) {
	Object defaultValue = this.defaultPreferenceTable.get(name);
	if (defaultValue != null && defaultValue instanceof Boolean) {
	    return ((Boolean) defaultValue).booleanValue();
	}
	return false;
    }

    public double getDefaultDouble(String name) {
	// TODO 自動生成されたメソッド・スタブ
	return 0;
    }

    public float getDefaultFloat(String name) {
	// TODO 自動生成されたメソッド・スタブ
	return 0;
    }

    public int getDefaultInt(String name) {
	// TODO 自動生成されたメソッド・スタブ
	return 0;
    }

    public long getDefaultLong(String name) {
	// TODO 自動生成されたメソッド・スタブ
	return 0;
    }

    public String getDefaultString(String name) {
	// TODO 自動生成されたメソッド・スタブ
	return null;
    }

    public double getDouble(String name) {
	// TODO 自動生成されたメソッド・スタブ
	return 0;
    }

    public float getFloat(String name) {
	// TODO 自動生成されたメソッド・スタブ
	return 0;
    }

    public int getInt(String name) {
	// TODO 自動生成されたメソッド・スタブ
	return 0;
    }

    public long getLong(String name) {
	// TODO 自動生成されたメソッド・スタブ
	return 0;
    }

    public String getString(String name) {
	// TODO 自動生成されたメソッド・スタブ
	return null;
    }

    public boolean isDefault(String name) {
	// TODO 自動生成されたメソッド・スタブ
	return false;
    }

    public boolean needsSaving() {
	// TODO 自動生成されたメソッド・スタブ
	return false;
    }

    public void putValue(String name, String value) {
	// TODO 自動生成されたメソッド・スタブ
    }

    public void setDefault(String name, boolean value) {
	// TODO 自動生成されたメソッド・スタブ

    }

    public void setDefault(String name, double value) {
	// TODO 自動生成されたメソッド・スタブ

    }

    public void setDefault(String name, float value) {
	// TODO 自動生成されたメソッド・スタブ

    }

    public void setDefault(String name, int value) {
	// TODO 自動生成されたメソッド・スタブ

    }

    public void setDefault(String name, long value) {
	// TODO 自動生成されたメソッド・スタブ

    }

    public void setDefault(String name, String defaultObject) {
	// TODO 自動生成されたメソッド・スタブ

    }

    public void setToDefault(String name) {
	// TODO 自動生成されたメソッド・スタブ

    }

    public void setValue(String name, boolean value) {
	// TODO 自動生成されたメソッド・スタブ

    }

    public void setValue(String name, double value) {
	// TODO 自動生成されたメソッド・スタブ

    }

    public void setValue(String name, float value) {
	// TODO 自動生成されたメソッド・スタブ

    }

    public void setValue(String name, int value) {
	// TODO 自動生成されたメソッド・スタブ

    }

    public void setValue(String name, long value) {
	// TODO 自動生成されたメソッド・スタブ

    }

    public void setValue(String name, String value) {
	// TODO 自動生成されたメソッド・スタブ

    }

}
